1. Field of the Invention
The present invention relates to data management systems, primary servers, and secondary servers for data registration and retrieval in distributed environment, and particularly to a data management system which allows client terminals to register and retrieve information that is distributed widely on a network, as well as to primary and secondary servers used in this system.
2. Description of the Related Art
ATM-LAN systems incorporate a public Asynchronous Transfer Mode (ATM) network as part of existing Local Area Network (LAN) environments. For a user terminal trying to communicate with a remote terminal or server having a specific IP (Internet Protocol) address, it is necessary to set up an ATM connection with the remote terminal before starting the session, for ATM is a connection-oriented technology. To establish this connection, the user terminal has to know the exact ATM address associated with the destination IP address. If such address information is not available at hand, the terminal will send the IP address in question to an ATM address resolution server (ATM-ARP server) on the network by using the Address Resolution Protocol (ARP) to inquire about what the corresponding ATM address is. The present invention proposes several techniques applicable to such ATM-ARP servers, essential facilities for interconnecting the existing LANs and public ATM networks. They can also be used in data management systems that provides data registration and retrieval services in a distributed environment.
In general, data management systems provide a common infrastructure for terminal users to register and retrieve information on the network. With respect to the roles of servers, conventional data management systems are broadly classified into three models as shown in FIGS. 50(A), 50(B), and 50(C). In those figures, each round frame represents the entire space of a computer network; black boxes A, B, and C show data management servers; white boxes x, y, and z indicate terminals. Thin solid arrows represent the flow of data registration requests, while bold solid arrows show the distribution of new data entries. Thin broken arrows indicate data retrieval requests and their responses between terminals and servers, while bold broken arrows those between servers.
FIGS. 50(A) to 50(C) commonly assume that the data management servers A, B, and C manage the terminals' host names such as "x," "y," and "z," and their network addresses. They also illustrate that the terminal x is requesting the registration of its own address ("x=10"), and the terminal z is sending a query message ("y?") about what address should be used to reach the terminal y. Regarding the system of FIG. 50(C), note that the terminal y's address information resides only in the data management server B.
FIG. 50(A) shows a first system model. This simplest model employs only one data management server A, where data objects are collected from the entire network to manage them in a concentrated manner. Every request for data registration and retrieval from the terminals x, y, and z is transmitted to the sole data management server A. In the present situation, the data management server A processes the registration request message for address information "=10" from the terminal x by entering the received information into its own data storage as a new record. Further, in response to the data retrieval request message "y?" from the terminal z, the data management server A searches its data storage for the requested address information, thereby returning a record "y=11" to the requesting terminal z.
FIG. 50(B) shows a second system model, where a plurality of data management servers A, B, and C are deployed in the same network to share the processing loads, as opposed to the first system model where all information storage and the management tasks are concentrated in a single server. The individual data management servers in this model have a synchronization mechanism for the data registration process. More specifically, when a registration request message is received from any of the terminals x, y, and z, they forward the same information to other servers after saving it in their own data storage. In the present example, the data management server A receives a registration request message for address information "x=10" from the terminal x, stores it into its local data storage, and then notifies the other data management servers B and C of the information. Upon receipt of this notification, the data management servers B and C store the information into their respective data storage just in the same way as they do when they have received registration request messages directly from terminals. In other words, the synchronization mechanism is a facility that allows each individual server to locally keep the entire set of information collected from the network similarly to the data management server A in the first system model. Therefore, in the second system model, every server can immediately respond to any information request from terminals.
FIG. 50(C) shows a third system model, which includes a plurality of data management servers as in the second system model, but no synchronization mechanism is implemented in the registration process of new records. In the present example, when a registration request message containing address information "x=10" is received from a terminal x, the data management server A stores it to its own data storage, but never sends it to the other data management servers B and C. This means that each individual data management server controls a different set of records. Take the data management server C for example. In FIG. 50(C), this server searches its local data storage in response to a data retrieval request message "y?" from a terminal z. If no match is found, the data management server C forwards the data retrieval request message "y?" to another server, according to a rule that has been defined previously in the system. In the server network illustrated in FIG. 50(C), the data management server A is designed to forward unsolved request messages to the data management server B. Likewise, the server B forwards such messages to the server C, and the server C to the server A. Accordingly, the above query message "y?" is first passed from the data management server C to the next server A, and if the server A is unable to answer the query, the message is further transferred to the server B.
In the present example, the record "y=11" in question is available in the last data management server B. Reversely tracing the same route, the retrieved record reaches the data management server C, which has originally thrown the message into the network of servers. Finally, the data management server C returns this record "y=11" to the requesting terminal z.
The above-described three system models, however, have some problems described below. While providing a simple and safe way of data retrieval, the first system model requires a single data management server to maintain vast amounts of data, thus imposing a heavy processing load on that server alone. This concentration of workloads may result in slow response to the queries from users.
The second system model avoids the above problem of concentrated workloads by deploying many data management servers to share the data retrieval tasks. However, the mechanism implemented in the second model for server-to-server synchronization will increase the network traffic when records are newly entered or updated.
As in the second model, the third system model distributes the data processing workloads to a plurality of data management servers to avoid the load concentration problem with the first model. It further solves the problem of increased network traffic, which discourages the use of the second system model, by eliminating data transfer for synchronization between servers. Nevertheless, this elimination of server synchronization mechanisms totally prevents the data management servers from knowing what records are stored in each other's local storage, and thus the unsolved query messages could be sent around from one server to another. Accordingly, the system suffers from increased network loads when processing data retrieval requests from terminals, and the very disadvantage of the third model is this inefficiency in data search. Consider, for example, that a user has issued a data retrieval request for some non-registered data. This causes in fact the worst situation, where all data management servers in the system are forced to conduct data searches which would end up with totally fruitless results.
As such, any of the three conventional system models has some performance bottlenecks. It should be also noted that the problems clarified above would be more serious as the network grows.